Jetzt auch Hallo an alle anderen.
Anstatt dass man tatsächlich immer Originaldateien hat, die man per E-Mail verschickt,
hat man auf seinem eigenen Computer nur noch Arbeitskopien.
Und die Arbeitskopien haben nur einen Wert, nämlich um die Änderung, die man gemacht hat,
bezüglich der Basisversion auszurechnen und schwupps an das Repository zurückzuschicken.
Insbesondere, wenn man ein Laptop abraucht, verlier ich nur die Änderungen seit dem letzten Commit,
die ich gemacht habe.
Ich kann gehen und einen neuen kaufen, ein neues Checkout machen, Bums, Voller, ist alles wieder da.
Das gibt einem eine Menge Sicherheit.
Was passiert also, wie arbeitet man? Wo habe ich denn das Bild?
Wir haben das Repository, sitzt auf dem Web-Server, man kann durch eine Checkout
eine neue Arbeitskopie verschaffen, auf der kann man eine Änderung machen
und dann wird die Änderung zurückgespielt. Das hat dann eine neue Version.
Das ist das Typische, was man macht. Man checkt sich was aus, arbeitet daran,
die Änderungen werden zurückgespeist, wunderbar, alles ist sicher.
Kann man sich den Laptop auch klauen lassen hinterher.
Alternativ ist es so, man hat bereits eine ausgecheckte Version und jemand anders,
diese Person hier, die hat es natürlich so, dass jemand anders,
dieser Mensch eins hat eine Änderung gemacht, danach muss der zweite da,
der eine unabhängige Arbeitskopie hat, auf einem anderen Rechner, muss ein Update machen.
Dann kann sich die neuesten Änderungen runterziehen und hat dann eine Version,
die synchronisiert ist. Das letzte, was passieren kann, ist, wenn ich Änderungen
gemacht habe, von daher kommt Delta 1 eine Änderung an, dann muss ich auch
ein Update machen, aber da ich selber Änderungen habe, gibt es sozusagen
zwei konkurrierende Änderungen und die muss ich zusammenmischen.
Das geht meistens einfach und manchmal kommt man zu sogenannten Konflikten.
Wenn zwei Leute in einer gleichen Zeile was geändert haben, dann passen die nicht mehr zusammen,
dann kann das System die nicht zusammenmischen, dann muss der Mensch hin und sagen,
brauche ich das Komma da oder nicht? Oder will ich und durch oder ersetzen oder durch obwohl?
Es gibt zwei Änderungen, und, durch oder oder obwohl. Und wie soll die Maschine
denn entscheiden, was das Richtige ist? Also muss ein Mensch ran und sagen,
weder oder noch obwohl, aber. Solche Sachen. Das ist Konfliktresolution.
Das Wichtige, was man verstehen muss, ist, wir haben ein Repository, das sitzt irgendwo im Keller
und ich habe in diesem Fall drei verschiedene Arbeitskopien, die alle
nebeneinander weiterentwickeln können und die einfach immer nur die Änderungen
hin und her schieben. Änderungen durch ein Commit an den Server und durch ein Update
oder Merge an die Arbeitskopie. Und das Schöne ist, statt dass ich per E-Mail mit Namen
im Pfeilnamen und Daten im Pfeilnamen selber buchen muss, führt das System für mich buchen.
Und dann ist es überhaupt kein Problem, wenn ich dreieinhalbtausend Änderungen habe
oder so etwas. Weil das System buchtführt. Und das kann das wirklich gut.
Das ist die Hauptidee. Gibt es dazu Fragen?
Okay. Wie funktioniert das Ganze? Die Basistechnologie haben wir uns angeguckt.
Die Basistechnologie ist, dass man Unterschiede zwischen Dateien ausrechnen kann.
Das macht ein sogenanntes Programm, ein Programm namens DIV, der erzeugt dieses Ding.
Und wenn man einen DIV hat, kann man das auf einen der beiden, kann man das auf dieses hier anwenden,
um das da zu kriegen. Und mehr brauchen wir nicht. Wenn wir uns hier angucken,
wenn wir das commit machen wollen, dann guckt sich das DIV, die Basisversion an,
die eben Repository ist, und die geänderte Version errechnet einen DIV und schiebt das DIV
zum Repository rüber. Das Repository nimmt das DIV, wendet es auf die Basisversion an
und hat eine neue Version. Mehr passiert da nicht. Das Einzige, das stimmt gar nicht,
Presenters
Zugänglich über
Offener Zugang
Dauer
01:04:24 Min
Aufnahmedatum
2019-05-02
Hochgeladen am
2019-05-06 21:51:14
Sprache
de-DE